﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace JAMK.ICT
{
  public class Henkilö: INotifyPropertyChanged
  {
    private string nimi;
    public string Nimi
    {
      get { return nimi; }
      set 
      { 
        nimi = value;
        Notify("Nimi");
      }
    }
    public string Sukupuoli { get; set;}
    private int ikä;
    public int Ikä 
    { 
      get 
    {
      return ikä;
    }
      set 
      {
        ikä = value;
        Notify("Ikä"); 
      } 
    }
    public Henkilö()
    {
      nimi = string.Empty;
    }
    public Henkilö(string oletusnimi)
    {
      nimi = oletusnimi;
    }
    public Henkilö(string oletusnimi, int ikä)
    {
      nimi = oletusnimi;
      this.Ikä = ikä;
    }
    public override string ToString()
    {
      //return base.ToString();
      return nimi + " " + this.Ikä.ToString() + "v";
    }
    #region INotifyPropertyChanged metodit
    public event PropertyChangedEventHandler PropertyChanged;
    void Notify(string propName)
    {
      if (PropertyChanged != null)
      {
        PropertyChanged(this, new PropertyChangedEventArgs(propName));
      }
    }
    #endregion
  }
  public static class TestiHenkilöt
  {
    public static Henkilö[] AnnaKolmeHenkilöä()
    {
      Henkilö[] poppoo = new Henkilö[4];
      Henkilö hlö = new Henkilö("Jaska");
      hlö.Sukupuoli = "mies";
      poppoo[0] = hlö;
      poppoo[1] = new Henkilö("Kalle");
      poppoo[2] = new Henkilö("Yrjö");
      poppoo[3] = new Henkilö("Jerobeam", 100);
      return poppoo;
    }
  }
}
